using Microsoft.VisualStudio.Debugger.Interop;

namespace Microsoft.WowAddonStudio.Lua.RuntimeService.DebugEngine
{
    /// <summary>
    /// Handy wrapper for types commonly passed around in the LuaDebugExpressionEvaluator.
    /// </summary>
    public class DebuggerContext
    {
		/// <summary>
		/// Initializes a new instance of the <see cref="DebuggerContext"/> class.
		/// </summary>
		/// <param name="provider">The provider.</param>
		/// <param name="address">The address.</param>
		/// <param name="binder">The binder.</param>
        public DebuggerContext(IDebugSymbolProvider provider, IDebugAddress address, IDebugBinder binder)
        {
            SymbolProvider = provider;
            Address = address;
            Binder = binder;
        }

		/// <summary>
		/// Gets or sets the symbol provider.
		/// </summary>
		/// <value>The symbol provider.</value>
        public IDebugSymbolProvider SymbolProvider { get; private set; }

		/// <summary>
		/// Gets or sets the address.
		/// </summary>
		/// <value>The address.</value>
        public IDebugAddress Address { get; private set; }

		/// <summary>
		/// Gets or sets the binder.
		/// </summary>
		/// <value>The binder.</value>
        public IDebugBinder Binder { get; private set; }
    }
}